package Dominio;
import Persistencia.AgenteBD;

import java.util.LinkedList;
import java.util.List;

public class Cliente {
	private int dni;
	private String nombre;
	private String apellidos;
	private String domicilio;
	private String email;
	private int esSocio;
	
	public Cliente(int dni, String nombre, String apellidos, String domicilio,
			String email, int esSocio) {
		super();
		this.dni = dni;
		this.nombre = nombre;
		this.apellidos = apellidos;
		this.domicilio = domicilio;
		this.email = email;
		this.esSocio = esSocio;
	}
	public Cliente() {
		super();
	}
	public int getDni() {
		return dni;
	}
	public void setDni(int dni) {
		this.dni = dni;
	}
	public String getNombre() {
		return nombre;
	}
	public void setNombre(String nombre) {
		this.nombre = nombre;
	}
	public String getApellidos() {
		return apellidos;
	}
	public void setApellidos(String apellidos) {
		this.apellidos = apellidos;
	}
	public String getDomicilio() {
		return domicilio;
	}
	public void setDomicilio(String domicilio) {
		this.domicilio = domicilio;
	}
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
	
	public int getEsSocio() {
		return esSocio;
	}
	public void setEsSocio(int esSocio) {
		this.esSocio = esSocio;
	}
	
	public static int registrarCliente(int id,String n,String a, String d,String e,int s){
		int  res=0;
		Cliente c= new Cliente(id,n,a,d,e,s);
		res=AgenteBD.crearClienteBD(c);	
		return res;
	}
	
	public static List<Cliente> consultarClientes(){
		List<Cliente> listaClientes = AgenteBD.consultarClientesBD();
		return listaClientes;
		
	}
	public static Cliente consultarCliente(int dni){
		Cliente c=AgenteBD.consultarClienteBD(dni);
		return c;
	}
	public static int modificarCliente(int id,String n,String a, String d,String e,int s){
		int res=0;
		Cliente c= AgenteBD.consultarClienteBD(id);
		if(c.getEsSocio()==1){
			if(s==1){
				c.setNombre(n);
				c.setApellidos(a);
				c.setDomicilio(d);
				c.setEmail(e);
				res=AgenteBD.modificarClienteBD(c);
			}
			else{
				c.setNombre(n);
				c.setApellidos(a);
				c.setDomicilio(d);
				c.setEmail(e);
				Socio.bajaSocio(id);
			}
		}
		else{
			c.setNombre(n);
			c.setApellidos(a);
			c.setDomicilio(d);
			c.setEmail(e);
			c.setEsSocio(s);
			res=AgenteBD.modificarClienteBD(c);
		}
		
		return res;
	}
	public static int borrarCliente(int id){
		int res=0;
		Cliente c=consultarCliente(id);
		if(c.getEsSocio()==1){
			res=-1;
		}
		else{
			res=AgenteBD.borrarClienteBD(id);
		}
		return res;
	}
	public static List<Cliente> consultarSocios() {
		List<Cliente> listaClientes = AgenteBD.consultarClientesSociosBD();
		return listaClientes;
	}
	public static List<Cliente> consultarClientesNoSocios() {
		List<Cliente> listaClientes = AgenteBD.consultarClientesNoSociosBD();
		return listaClientes;
	}
	public static List<Cliente> consultarClientesSociosTitulares() {
		List<Socio> ls=AgenteBD.consultarSociosTitularesBD();
		LinkedList<Cliente> lc=new LinkedList<Cliente> ();
		for (int i = 0; i < ls.size(); i++) {
			lc.add(AgenteBD.consultarClienteBD(ls.get(i).getDni()));
		}
		return lc;
	}

}
